$Note.$ The section titles with parenthesis "()" are additional analyses which were not reported in the manuscript.
library(stringr)
library(dplyr)
library(reshape)
library(ggplot2)
library(psych)
library(viridis)
library(scales)
library(rcartocolor)
library(effsize)
library(tidyverse)
library(magrittr)
library(apaTables)
library(MBESS)
library(xtable)
library(Hmisc)
sessionInfo()
df<-read.csv("maindata.csv")
head(df)
colnames(df)
dim(df)
rep(c(1:100),50) %>% sort() -> NumID
df<-cbind(df, NumID)
CPalet<-c("#117733","#6699CC","#CF6677")
show_col(CPalet)
CPalet
df %>%
group_by(NumID) %>%
summarise(Efficiency= mean(Fitness)) -> Efficiency
df1<-df[df$Trial==1,]
df1chosen<-df1[c("Generation","ExpCondition","ChainID", "Age", "Gender", "ID")]
cbind(
Efficiency,df1chosen) -> EfficiencyDf
EfficiencyDf
#head(Efficiency)
#cbind(Efficiency, PptGeneration,PptCondition, PptSessionID )
#cbind(Efficiency, PptGeneration,PptCondition, PptSessionID ) -> EfficiencyDf
#colnames(EfficiencyDf)<-c("ID","Efficiency","Generation","ExpCondition","SessionID")
#EfficiencyDf
EfficiencyDf$Generation - EfficiencyDf$Generation_backup
df %>%
group_by(NumID) %>%
summarise(sum_choice = sum(Choice-1)) -> Exploration
df1<-df[df$Trial==1,]
PSessionID<-df1$ChainID
PGeneration<-df1$Generation
PCondition<-df1$ExpCondition
PGender<-df1$Gender
cbind(Exploration, PGeneration,PCondition, PSessionID, PGender) -> ExpDf
colnames(ExpDf)<-c("ID","Exploration","Generation","ExpCondition","SessionID","Gender")
head(ExpDf)
labeli <- as_labeller(c("I" = "Asocial",
"O" = "Unrepaid",
"V" = "Repaid",
"1"="1","2"="2","3"="3","4"="4","5"="5","6"="6","7"="7","8"="8","9"="9","10"="10","11"="11",
"12"="12","13"="13","14"="14",
"15"="15","16"="16","17"="17","18"="18","19"="19","20"="20"))
my_x_title <- expression(paste("Trial (", italic("T"), ")"))
options(repr.plot.width=10, repr.plot.height=5.2)
#options(repr.plot.width=20, repr.plot.height=20)
g<-ggplot(df[df$Generation == 1, ], aes(x=Trial, y= Choice-1, color = as.factor(ExpCondition))) +
ylim(0,1)+
theme_bw()+geom_point()+geom_line(alpha = 1, size = 0.2)+facet_grid(as.factor(ChainID)~ExpCondition ,labeller = labeli)+
theme(axis.title.y=element_blank(),
axis.text.y=element_blank(),
axis.ticks.y=element_blank(),
panel.grid.major.y = element_blank(),
panel.grid.minor.y = element_blank()
)+ xlab(my_x_title)+
theme(legend.position = "none")+
scale_color_manual(values = CPalet)
g
ggsave("Figures/FigExplExpr.pdf", dpi = 220, device = "pdf", width = 10, height = 5.2)
ggsave("Figures//FigExplExpr.eps", dpi = 220, device = "eps", width = 10, height = 5.2)
DF<-ExpDf[,c(1,2,3,4)]
head(DF)
DF %>%
group_by(Generation, ExpCondition) %>%
summarise(mean = mean(Exploration), SE = sd(Exploration)/sqrt(20)) -> SmrDF
SmrDF$SE %>% round(.,3) -> SmrDF$SE
SmrDF
#ExpDf[(ExpDf$Generation == 1)&(ExpDf$ExpCondition!= "O"),] -> JASPVI
#ExpDf[(ExpDf$Generation == 1)&(ExpDf$ExpCondition!= "V"),] -> JASPOI
#write.csv(JASPVI, file="JASPVI.csv", sep=",")
#write.csv(JASPOI, file="JASPOI.csv", sep=",")
y_title <- expression(paste("Exploration trials (", italic(tau), ")"))
#taulabel<-"a"
taulabel<- expression(italic(tau)*"*")
options(repr.plot.width=6, repr.plot.height=3)
suppressMessages(
suppressWarnings(
g <- ggplot(ExpDf[ExpDf$Generation ==1,], aes(x =as.factor(ExpCondition), y = Exploration,fill =as.factor(ExpCondition))) +
ggdist::stat_slab( aes(x =as.numeric(as.factor(ExpCondition))+0.1),
alpha = 0.9,
width = .24,
.width = c(0.00002, .92),
) +
geom_jitter(size = 0.7,height=0, width =0.05, alpha = 0.7,aes(x = as.factor(ExpCondition), color =as.factor(ExpCondition))) +
coord_cartesian(xlim = c(1.0, NA))+theme_bw()+
scale_color_manual(values = CPalet, name = "Condition",labels = c("Asocial", "Unrepaid","Repaid"))+
scale_fill_manual(values = CPalet, name = "Condition",labels = c("Asocial", "Unrepaid","Repaid"))+
ylab(y_title )+xlab("Experimental Conition")+
scale_x_discrete("Condition", labels = c("I" = "Asocial","O" = "Unrepaid", "V" = "Repaid"))+
stat_summary(fun= mean, geom="bar", alpha = 1, width = 0.2, color = "black",aes(x = as.numeric(as.factor(ExpCondition))-0.2)) +
stat_summary(fun.min = function(x) mean(x) -sd(x)/sqrt(length(x)),
fun.max = function(x) mean(x) + sd(x)/sqrt(length(x)),
geom = "errorbar", width =0.05, aes(x = as.numeric(as.factor(ExpCondition))-0.2))+
geom_segment(aes(x=0.6,xend=1.22,y=12,yend=12),linetype=2, color = "grey39", size = 0.4)+
geom_segment(aes(x=1.6,xend=2.22,y=12,yend=12),linetype=2, color = "grey39", size = 0.4)+
geom_segment(aes(x=2.6,xend=3.22,y=22,yend=22),linetype=2, color = "grey39", size = 0.4)+
annotate("text",x=1.3,y=0.01+12,label=taulabel) +
annotate("text",x=2.3,y=0.01+12,label=taulabel) +
annotate("text",x=3.3,y=0.01+22,label=taulabel)
))
suppressMessages(
suppressWarnings(g)
)
ggsave("Figures/MFreqExpo.pdf", dpi = 220, device = "pdf", width = 5, height =3)
y_title <- expression(paste("Mean exploration rate (", italic("W/T"), ")"))
labeli <- as_labeller(c("I" = "Asocial",
"O" = "Unnrepaid",
"V" = "Repaid",
"1"="First Generation","2"="Second Generation"))
options(repr.plot.width=5, repr.plot.height=3)
ggplot(SmrDF, aes(y=mean, x=ExpCondition,fill=ExpCondition))+
geom_bar(stat = "identity", width = 0.4 , color = "black")+theme_bw()+
geom_errorbar(aes(ymax = mean + SE, ymin = mean - SE), width = 0.1)+
facet_grid(Generation~., labeller = labeli )+
scale_fill_manual(values = CPalet, name = "Condition",labels = c("Asocial", "Unrepaid","Repaid"))+
ylab(y_title )+xlab("Experimental Conition")+
scale_x_discrete("Condition", labels = c("I" = "Asocial","O" = "Unrepaid", "V" = "Repaid"))
#ggsave("MExpRate.pdf", dpi = 220, device = "pdf", width = 5, height =3)
"IND"
ExpDf[(ExpDf$Generation == 1)&(ExpDf$ExpCondition == "I"),]$Exploration -> IND_Expo
round(psych::describe( IND_Expo),2)
"OBL"
ExpDf[(ExpDf$Generation == 1)&(ExpDf$ExpCondition == "O"),]$Exploration -> OBL_Expo
round(psych::describe( OBL_Expo),2)
"VER"
ExpDf[(ExpDf$Generation == 1)&(ExpDf$ExpCondition == "V"),]$Exploration -> VER_Expo
round(psych::describe( VER_Expo),2)
t.test(OBL_Expo, IND_Expo)
effsize::cohen.d(OBL_Expo, IND_Expo)
"Non-Repaid SD"
round(sd(IND_Expo),2)
"Asocial SD"
round(sd(VER_Expo),2)
library(effsize)
t.test(VER_Expo, IND_Expo)
effsize::cohen.d(VER_Expo, IND_Expo)
"Repaid SD"
round(sd(IND_Expo),2)
"Asocial SD"
round(sd(VER_Expo),2)
df
## Detecting Over Explorer
LengthOptimal <- 70
WidthOptimal <-48
ThicknessOptimal<-11
OverExpLength<-(df$Length > LengthOptimal)+0
OverExpWidth<-(df$Width > WidthOptimal)+0
OverExpThickness<-(df$Thickness < ThicknessOptimal)+0
df<-dplyr::mutate(df, OverExpLength)
df<-dplyr::mutate(df, OverExpWidth)
df<-dplyr::mutate(df, OverExpThickness)
df[(df$Length > LengthOptimal)&(df$Generation == 1),]$NumID %>% unique() -> OverLengthIDG1
df[(df$Width > WidthOptimal)&(df$Generation == 1),]$NumID %>% unique() -> OverWidthIDG1
df[(df$Thickness < ThicknessOptimal)&(df$Generation == 1),]$NumID %>% unique() -> OverThicknessIDG1
df[(df$Length > LengthOptimal)&(df$Generation == 2),]$NumID %>% unique() -> OverLengthIDG2
df[(df$Width > WidthOptimal)&(df$Generation == 2),]$NumID %>% unique() -> OverWidthIDG2
df[(df$Thickness < ThicknessOptimal)&(df$Generation == 2),]$NumID %>% unique() -> OverThicknessIDG2
"L, G1"
OverLengthIDG1
length(OverLengthIDG1)
"W, G1"
OverWidthIDG1
length(OverWidthIDG1)
"T, G1"
OverThicknessIDG1
length(OverThicknessIDG1)
"Total, G1"
c(OverLengthIDG1, OverWidthIDG1, OverThicknessIDG1) %>% unique()
c(OverLengthIDG1, OverWidthIDG1, OverThicknessIDG1) %>% unique() %>% length()
OverLengthIDG2
OverWidthIDG2
OverThicknessIDG2
"Geneartion1"
"L,W,T"
df[(df$Length > LengthOptimal)&(df$Generation == 1),]$ID %>% unique() ->OLIDG1
df[(df$Width > WidthOptimal)&(df$Generation == 1),]$ID %>% unique() ->OWIDG1
df[(df$Thickness < ThicknessOptimal)&(df$Generation == 1),]$ID %>% unique() -> OTIDG1
OLIDG1
OWIDG1
OTIDG1
c(OLIDG1,OWIDG1,OTIDG1)%>% unique() -> AllIDG1
#c(OLIDG1,OWIDG1,OTIDG1)%>% unique() %>% length
OverIndNG1 <- str_detect(AllIDG1, pattern="I") %>% sum()
OverOblNG1 <- str_detect(AllIDG1, pattern="O") %>% sum()
OverVerNG1 <- str_detect(AllIDG1, pattern="V") %>% sum()
OverExpSummaryG1<-c(OverIndNG1 , OverOblNG1, OverVerNG1)
OverExpSummaryG1
"Geneartion2"
"L,W,T"
df[(df$Length > LengthOptimal)&(df$Generation == 2),]$ID %>% unique() ->OLIDG2
df[(df$Width > WidthOptimal)&(df$Generation == 2),]$ID %>% unique() ->OWIDG2
df[(df$Thickness < ThicknessOptimal)&(df$Generation == 2),]$ID %>% unique() -> OTIDG2
OLIDG2
OWIDG2
OTIDG2
c(OLIDG2,OWIDG2,OTIDG2)%>% unique() -> AllIDG2
#c(OLIDG2,OWIDG2,OTIDG2)%>% unique() %>% length
OverIndNG2<- str_detect(AllIDG2, pattern="I") %>% sum()
OverOblNG2 <- str_detect(AllIDG2, pattern="O") %>% sum()
OverVerNG2 <- str_detect(AllIDG2, pattern="V") %>% sum()
OverExpSummaryG2<-c(OverIndNG2 , OverOblNG2, OverVerNG2)
OverExpSummaryG2
rbind(OverExpSummaryG1, OverExpSummaryG2) %>% data.frame() -> OverExpSummary
colnames(OverExpSummary)<-c("asocial","unrepaid","repaid")
rownames(OverExpSummary)<-c("G1","G2")
OverExpSummary
OverExpSummary/20
OverExpLength<-(df$Length > LengthOptimal)+0
OverExpWidth<-(df$Width > WidthOptimal)+0
OverExpThickness<-(df$Thickness < ThicknessOptimal)+0
df
df[(df$Length > LengthOptimal)|(df$Generation==1) ,]
labeli <- as_labeller(c("I" = "Asocial",
"O" = "Unnrepaid",
"V" = "Repaid",
"1"="First Generation","2"="Second Generation"))
options(repr.plot.width=10, repr.plot.height=10)
ggplot(df, aes(x=Trial,y=Length, group = as.factor(ID), color = as.factor(ChainID))) +
geom_point(alpha =0.5)+ geom_line(alpha=0.6)+
geom_hline(yintercept = 70, size = 0.6, linetype = 1) +
ylim(0,100)+
theme_bw()+
guides(color=guide_legend(title="ID"))+theme(legend.position = "none")+
theme(text = element_text(size = 16))+
facet_grid(ExpCondition ~ Generation,labeller = labeli) -> Lplot
Lplot
labeli <- as_labeller(c("I" = "Asocial",
"O" = "Unrepaid",
"V" = "Repaid",
"1"="First Generation","2"="Second Generation"))
options(repr.plot.width=12, repr.plot.height=12)
ggplot(df, aes(x=Trial,y=Length, group = as.factor(ID), color = as.factor(OverExpLength))) +
geom_point(alpha =0.5)+ geom_line(alpha=0.5)+
guides(color=guide_legend(title="Overexploration"))+
geom_hline(yintercept = 70, size = 0.6, linetype = 1) +
ylim(0,100)+
theme_bw()+
theme(text = element_text(size = 16))+
facet_grid(ExpCondition ~ Generation,labeller = labeli)
options(repr.plot.width=10, repr.plot.height=10)
ggplot(df, aes(x=Trial,y=Width, group = as.factor(ID), color = as.factor(ChainID), alpha = 0.2)) +
geom_point(alpha =0.5)+ geom_line(alpha=0.6)+
geom_hline(yintercept = 48, size = 0.6, linetype = 1) +
ylim(0,100)+
theme_bw()+
theme(text = element_text(size = 16))+
guides(color=guide_legend(title="ID"))+theme(legend.position = "none")+
facet_grid(ExpCondition ~ Generation,labeller = labeli) -> Wplot
Wplot
options(repr.plot.width=12, repr.plot.height=12)
ggplot(df, aes(x=Trial,y=Width, group = as.factor(ID), color = as.factor(OverExpWidth), alpha = 0.2)) +
geom_point(alpha =0.5)+ geom_line(alpha=0.5)+
guides(color=guide_legend(title="Overexploration"))+
geom_hline(yintercept = 48, size = 0.6, linetype = 1) +
ylim(0,100)+
theme_bw()+
theme(text = element_text(size = 16))+
facet_grid(ExpCondition ~ Generation,labeller = labeli)
options(repr.plot.width=10, repr.plot.height=10)
ggplot(df, aes(x=Trial,y=Thickness, group = as.factor(ID), color = as.factor(ChainID))) +
geom_point(alpha =0.5)+ geom_line(alpha=0.6)+
geom_hline(yintercept = 11, size = 0.6, linetype = 1) +
ylim(0,100)+
theme_bw()+
theme(text = element_text(size = 16))+
guides(color=guide_legend(title="ID"))+theme(legend.position = "none")+
facet_grid(ExpCondition ~ Generation,labeller = labeli) -> Tplot
Tplot
options(repr.plot.width=12, repr.plot.height=12)
ggplot(df, aes(x=Trial,y=Thickness, group = as.factor(ID), color = as.factor(OverExpThickness), alpha = 0.2)) +
geom_point(alpha =0.5)+ geom_line(alpha=0.5)+
guides(color=guide_legend(title="Overexploration"))+
geom_hline(yintercept = 11, size = 0.6, linetype = 1) +
ylim(0,100)+
theme_bw()+
theme(text = element_text(size = 16))+
facet_grid(ExpCondition ~ Generation,labeller = labeli)
options(repr.plot.width=12, repr.plot.height=12)
y_title <- expression("Cumulative payoff")
x_title <- expression("Trial")
labeli <- as_labeller(c("I" = "Asocial",
"O" = "Nonrepaid",
"V" = "Repaid",
"1"="First Geneartion",
"2"="Second Generation"))
#options(repr.plot.width=6., repr.plot.height=6.5)
df %>% ggplot(aes(x=Trial,y=as.numeric(EarnedMoney/2)))+
geom_line(aes(group =ChainID, color = as.factor(ChainID)), alpha = 0.3)+
geom_point(aes(group =ChainID, color = as.factor(ChainID)), alpha = 0.5)+
facet_grid(ExpCondition ~ Generation, labeller=labeli ) +
theme_bw() +theme(legend.position = "none")+
stat_summary(fun="mean", geom="line", alpha = 1, size = 1.3) +
stat_summary(fun="mean", geom="point", alpha = 1, size = 1.6)+
ylab(y_title)+xlab(x_title)+theme(text = element_text(size = 16))+
stat_summary(fun = mean,
fun.min = function(x) mean(x) - sd(x)/sqrt(length(x)),
fun.max = function(x) mean(x) + sd(x)/sqrt(length(x)),
alpha = 0.8, geom = "linerange", size =0.5)+geom_hline(yintercept = 364, size = 0.4, linetype = 5) -> CPayoffG
CPayoffG
library(gridExtra)
options(repr.plot.width=26, repr.plot.height=12)
grid.arrange(Lplot, Wplot, Tplot, nrow = 1) -> LWTg
LWTg
ggsave("Figures/LWTshift.pdf",LWTg, dpi = 220, device = "pdf", width = 26, height = 12)
library(gridExtra)
options(repr.plot.width=18, repr.plot.height=18)
layout <- rbind(c(1, 2),
c(3, 4))
grid.arrange(Lplot, Wplot, Tplot, CPayoffG, layout_matrix =layout) -> LWTPayoffgraph
ggsave("Figures/LWTshiftPayoff.pdf", LWTPayoffgraph, dpi = 220, device = "pdf", width = 18, height = 18)
y_title <- expression("Technological efficiency")
x_title <- expression("Trial "*(italic(i)))
labeli <- as_labeller(c("I" = "Asocial",
"O" = "Unrepaid",
"V" = "Repaid",
"1"="First Geneartion",
"2"="Second Generation"))
options(repr.plot.width=6., repr.plot.height=6.5)
df %>% ggplot(aes(x=Trial,y=as.numeric(Fitness)))+
geom_line(aes(group =ChainID, color = as.factor(ChainID)), alpha = 0.3)+
geom_point(aes(group =ChainID, color = as.factor(ChainID)),size = 0.7, alpha = 0.5)+
facet_grid(ExpCondition ~ Generation, labeller=labeli ) +
theme_bw() +theme(legend.position = "none")+
stat_summary(fun="mean", geom="line", alpha = 1, size = 0.5) +
stat_summary(fun="mean", geom="point", alpha = 1, size = 0.9)+
ylab(y_title)+xlab(x_title)+
stat_summary(fun = mean,
fun.min = function(x) mean(x) - sd(x)/sqrt(length(x)),
fun.max = function(x) mean(x) + sd(x)/sqrt(length(x)),
alpha = 0.8, geom = "linerange", size =0.5)
ggsave("MEfficienct.pdt", dpi = 220, device = "pdf", width = 6, height = 6.5)
options(repr.plot.width=6, repr.plot.height=3)
g <- ggplot(EfficiencyDf[EfficiencyDf$Generation ==1,], aes(x =as.factor(ExpCondition), y = Efficiency,fill =as.factor(ExpCondition))) +
ggdist::stat_slab( aes(x =as.numeric(as.factor(ExpCondition))+0.1),
alpha = 0.9,
width = .24,
.width = c(0.00002, .92),
) +
geom_jitter(size = 0.7,height=0, width =0.05, alpha = 0.7,aes(x = as.factor(ExpCondition), color =as.factor(ExpCondition))) +
coord_cartesian(xlim = c(1.0, NA), ylim=c(400,800))+theme_bw()+
scale_color_manual(values = CPalet, name = "Condition",labels = c("Asocial", "Unrepaid","Repaid"))+
scale_fill_manual(values = CPalet, name = "Condition",labels = c("Asocial", "Unrepaid","Repaid"))+
ylab(y_title )+xlab("Experimental Conition")+
scale_x_discrete("Condition", labels = c("I" = "Asocial","O" = "Nonrepaid", "V" = "Repaid"))+
stat_summary(fun= mean, geom="bar", alpha = 1, width = 0.2, color = "black",aes(x = as.numeric(as.factor(ExpCondition))-0.2)) +
stat_summary(fun.min = function(x) mean(x) -sd(x)/sqrt(length(x)),
fun.max = function(x) mean(x) + sd(x)/sqrt(length(x)),
geom = "errorbar", width =0.05, aes(x = as.numeric(as.factor(ExpCondition))-0.2))
g
options(repr.plot.width=9, repr.plot.height=3)
g <- ggplot(EfficiencyDf, aes(x =as.factor(ExpCondition), y = Efficiency,fill =as.factor(ExpCondition))) +
ggdist::stat_slab( aes(x =as.numeric(as.factor(ExpCondition))+0.1),
alpha = 0.9,
width = .24,
.width = c(0.00002, .92),
) +
geom_jitter(size = 0.7,height=0, width =0.05, alpha = 0.7,aes(x = as.factor(ExpCondition), color =as.factor(ExpCondition))) +
coord_cartesian(xlim = c(1.0, NA))+theme_bw()+
scale_color_manual(values = CPalet, name = "Condition",labels = c("Asocial", "Unrepaid","Repaid"))+
scale_fill_manual(values = CPalet, name = "Condition",labels = c("Asocial", "Unrepaid","Repaid"))+
ylab(y_title )+xlab("Experimental Conition")+
scale_x_discrete("Condition", labels = c("I" = "Asocial","O" = "Unrepaid", "V" = "Repaid"))+
stat_summary(fun= mean, geom="bar", alpha = 1, width = 0.2, color = "black",aes(x = as.numeric(as.factor(ExpCondition))-0.2)) +
stat_summary(fun.min = function(x) mean(x) -sd(x)/sqrt(length(x)),
fun.max = function(x) mean(x) + sd(x)/sqrt(length(x)),
geom = "errorbar", width =0.05, aes(x = as.numeric(as.factor(ExpCondition))-0.2))+
facet_grid(.~Generation, labeller = labeli )
g
OblOffline<-df[(df$Generation == 1)&(df$ExpCondition == "O"), ]$Fitness
VerOffline<-df[(df$Generation == 1)&(df$ExpCondition == "V"), ]$Fitness
IndOffline<-df[(df$Generation == 1)&(df$ExpCondition == "I"), ]$Fitness
OblOfflineF<-df[(df$Generation == 1)&(df$ExpCondition == "O")&(df$Trial == 50), ]$Fitness
VerOfflineF<-df[(df$Generation == 1)&(df$ExpCondition == "V")&(df$Trial == 50), ]$Fitness
IndOfflineF<-df[(df$Generation == 1)&(df$ExpCondition == "I")&(df$Trial == 50), ]$Fitness
OblOfflineF2<-df[(df$Generation == 2)&(df$ExpCondition == "O")&(df$Trial == 50), ]$Fitness
VerOfflineF2<-df[(df$Generation == 2)&(df$ExpCondition == "V")&(df$Trial == 50), ]$Fitness
"Ind"
psych::describe(IndOfflineF) %>% round(.,2)
"Obl"
psych::describe(OblOfflineF)%>% round(.,2)
"Ver"
psych::describe(VerOfflineF)%>% round(.,2)
options(repr.plot.width=9, repr.plot.height=4)
g <- ggplot(df[df$Trial == 50,], aes(x =as.factor(ExpCondition), y =Fitness,fill =as.factor(ExpCondition))) +
ggdist::stat_slab( aes(x =as.numeric(as.factor(ExpCondition))+0.1),
alpha = 0.9,
width = .24,
.width = c(0.00002, .92),
) +
geom_jitter(size = 0.7,height=0, width =0.05, alpha = 0.7,aes(x = as.factor(ExpCondition), color =as.factor(ExpCondition))) +
coord_cartesian(xlim = c(1.0, NA),ylim=c(400,1000))+theme_bw()+
scale_color_manual(values = CPalet, name = "Condition",labels = c("Asocial", "Unrepaid","Repaid"))+
scale_fill_manual(values = CPalet, name = "Condition",labels = c("Asocial", "Unrepaid","Repaid"))+
ylab(y_title )+xlab("Experimental Conition")+
scale_x_discrete("Condition", labels = c("I" = "Asocial","O" = "Nonrepaid", "V" = "Repaid"))+
stat_summary(fun= mean, geom="bar", alpha = 1, width = 0.2, color = "black",aes(x = as.numeric(as.factor(ExpCondition))-0.2)) +
stat_summary(fun.min = function(x) mean(x) -sd(x)/sqrt(length(x)),
fun.max = function(x) mean(x) + sd(x)/sqrt(length(x)),
geom = "errorbar", width =0.05, aes(x = as.numeric(as.factor(ExpCondition))-0.2))+
facet_grid(.~Generation,labeller = labeli)
g
options(repr.plot.width=9, repr.plot.height=4)
g <- ggplot(df[df$Trial == 50,], aes(x =as.factor(ExpCondition), y =Fitness,fill =as.factor(ExpCondition))) +
ggdist::stat_slab( aes(x =as.numeric(as.factor(ExpCondition))+0.1),
alpha = 0.9,
width = .24,
.width = c(0.00002, .92),
) +
geom_jitter(size = 0.7,height=0, width =0.05, alpha = 0.7,aes(x = as.factor(ExpCondition), color =as.factor(ExpCondition))) +
coord_cartesian(xlim = c(1.0, NA),ylim=c(0,1000))+theme_bw()+
scale_color_manual(values = CPalet, name = "Condition",labels = c("Asocial", "Unrepaid","Repaid"))+
scale_fill_manual(values = CPalet, name = "Condition",labels = c("Asocial", "Unnrepaid","Repaid"))+
ylab(y_title )+xlab("Experimental Conition")+
scale_x_discrete("Condition", labels = c("I" = "Asocial","O" = "Nonrepaid", "V" = "Repaid"))+
stat_summary(fun= mean, geom="bar", alpha = 1, width = 0.2, color = "black",aes(x = as.numeric(as.factor(ExpCondition))-0.2)) +
stat_summary(fun.min = function(x) mean(x) -sd(x)/sqrt(length(x)),
fun.max = function(x) mean(x) + sd(x)/sqrt(length(x)),
geom = "errorbar", width =0.05, aes(x = as.numeric(as.factor(ExpCondition))-0.2))+
facet_grid(.~Generation,labeller = labeli)
g
library(exactRankTests)
t.test(VerOfflineF, IndOfflineF)
t.test(log(VerOfflineF), log(IndOfflineF))
wilcox.exact(VerOfflineF, IndOfflineF,paired=F)
effsize::cohen.d(VerOfflineF, IndOfflineF)
sd(VerOfflineF)
sd(IndOfflineF)
library(exactRankTests)
t.test(OblOfflineF, IndOfflineF)
t.test(log(OblOfflineF), log(IndOfflineF))
wilcox.exact(OblOfflineF, IndOfflineF,paired=F)
effsize::cohen.d(OblOfflineF, IndOfflineF)
sd(OblOfflineF)
t.test(VerOfflineF2, OblOfflineF2)
t.test(log(VerOfflineF2), log(OblOfflineF2))
wilcox.exact(VerOfflineF2, OblOfflineF2,paired=F)
effsize::cohen.d(VerOfflineF2, OblOfflineF2)
t.test(OblOfflineF2-OblOfflineF)
#cohen.d(OblOfflineF2-OblOfflineF)
OblCCE<-OblOfflineF2-OblOfflineF
t.test(VerOfflineF2-VerOfflineF)
#cohen.d(VerOfflineF2-VerOfflineF)
VerCCE<-VerOfflineF2-VerOfflineF
t.test(VerCCE,OblCCE)
datad<-read.csv("PostQuestionData.csv")
colnames(datad)
datad %>% group_by(., condition, generation) %>%
dplyr::summarize(, n = n(), Str_turn= 2-mean(Str_turn), Str_switch= 2-mean(Str_switch))
datad %>% group_by(., condition, generation) %>%
dplyr::summarize(, n = n(), Str_turn= (2-mean(Str_turn))*20, Str_switch= (2-mean(Str_switch))*20)
datad %>% group_by(., condition, generation) %>%
dplyr::summarize(, n = n(), Mingore_cost=round(mean (ignore_cost, na.rm = TRUE),2),
SDingore_cost=round(sd(ignore_cost, na.rm = TRUE),2),
Moverspent=mean(overspent),
SDoverspent=sd(overspent)%>%round(2),
Mmorespent=mean(more_spent),
SDmorespent=sd(more_spent)%>%round(2),
Mmaximize=mean(maxim),
SDmaximize=sd(maxim)%>%round(2))
datad %>% group_by(., condition, generation) %>%
dplyr::summarize(, n = n(),
MFutureThink=mean(FutureThink),
SFutureThink=sd(FutureThink)%>%round(2),
MAncestor=mean(Ancestor),
SAncestor=sd(Ancestor)%>%round(2),
MReturn=mean(Return),
SReturn=sd(Return)%>%round(2))
PROSOC_KEY<-c(3,2,1,3,2,1,1,3,2)
PROSELF_KEY<-c(2,1,3,2,1,3,2,1,3)
COMP_KEY <-c(1,3,2,1,3,2,3,2,1)
SVO<-datad[,(dim(datad)[2]-8):dim(datad)[2]]
PSocScore<-apply(SVO==matrix(PROSOC_KEY,dim(SVO)[1],dim(SVO)[2],T) ,1, sum)
PSelfScore<-apply(SVO==matrix(PROSELF_KEY,dim(SVO)[1],dim(SVO)[2],T) ,1, sum)
CompScore<-apply(SVO==matrix(COMP_KEY,dim(SVO)[1],dim(SVO)[2],T) ,1, sum)
datadp<-mutate(datad, PSocScore,PSelfScore,CompScore)
#mean(datadp[(datadp$condition=="I")&(datadp$generation==1),]$PSocScore)
#mean(datadp[(datadp$condition=="O")&(datadp$generation==1),]$PSocScore)
#mean(datadp[(datadp$condition=="V")&(datadp$generation==1),]$PSocScore)
#mean(datadp[(datadp$condition=="O")&(datadp$generation==2),]$PSocScore)
#mean(datadp[(datadp$condition=="V")&(datadp$generation==2),]$PSocScore)
SVO_cat<-numeric(dim(datad)[1])
SVO_cat[PSocScore > 5.9]<-"C"
SVO_cat[PSocScore < 5.9]<-"N"
SVO_cat[9-PSocScore > 5.9]<-"D"
#SVO_cat
IfSocial<-numeric(dim(datad)[1])
IfSocial[PSocScore > 5.9]<-1
datadp<-mutate(datadp, SVO_cat,IfSocial)
datadp %>% group_by(., condition, generation) %>%
dplyr::summarize(, n = n(), psoc_m = mean(PSocScore), psoc_sd = round(sd(PSocScore), 2),
pself_m = mean(PSelfScore), pself_sd = round(sd(PSelfScore),2),
comp_m = mean(CompScore), comp_sd = round(sd(CompScore),2)) -> table_svo
table_svo
#latex(table_svo, file = "table_svo_dexc.tex")
(table(datadp[datadp$generation ==1,]$condition, datadp[datadp$generation ==1,]$SVO_cat)) ->G1SVO
(G1SVO)
(G1SVO)/20
(table(datadp[datadp$generation ==2,]$condition, datadp[datadp$generation ==2,]$SVO_cat)) ->G2SVO
(G2SVO)
(G2SVO)/20
(table(datadp[datadp$generation ==1,]$condition, datadp[datadp$generation ==1,]$IfSocial))
(table(datadp[datadp$generation ==1,]$condition, datadp[datadp$generation ==1,]$IfSocial)) ->G1IfSocial
G1IfSocial
G1IfSocial/20
ExpDfSVO<-mutate(ExpDf, SVO_cat, IfSocial,PSocScore)
filter(ExpDfSVO, Generation == 1) -> ExpDfSVOG1
head(ExpDfSVO)
Gaus_additive<-lm(data = ExpDfSVOG1, Exploration~ExpCondition+IfSocial)
summary(Gaus_additive)
$Y_i = \beta_0 + \beta_1X_{unrepaid} + \beta_2X_{repaid} + \beta_3X_{prosicail} + \varepsilon$
Gaus_additive_scale<-lm(data = ExpDfSVOG1, scale(Exploration)~ExpCondition+IfSocial)
summary(Gaus_additive_scale)
options(digits=2)
summary(Gaus_additive_scale)
apa.reg.table(Gaus_additive_scale)
Pois_additive<-glm(data = ExpDfSVOG1, Exploration~ExpCondition+IfSocial, family = poisson(link="identity"))
Pois_additive_log<-glm(data = ExpDfSVOG1, Exploration~ExpCondition+IfSocial, family = poisson(link="log"))
summary(Pois_additive)
summary(Pois_additive_log)
#apa.reg.table(Pois_additive)
AIC(Gaus_additive,Gaus_additive_scale,Pois_additive,Pois_additive_log)
gression results using Exploration as the criterion
Predictor b b_95%_CI sr2 sr2_95%_CI Fit
(Intercept) 20.35* [17.58, 23.12]
ExpConditionO -0.63 [-4.02, 2.77] .00 [-.02, .02]
ExpConditionV 4.48 [1.08, 7.87] .10 [-.04, .25]
IfSocial -0.49 [-3.27, 2.28] .00 [-.02, .02]
R2 = .166*
95% CI[NA,NA]
Note. A significant b-weight indicates the semi-partial correlation is also significant. b represents unstandardized regression weights. sr2 represents the semi-partial correlation squared. Square brackets are used to enclose the lower and upper limits of a confidence interval.